<?php

// [ 回复 ]

namespace app\wechat\lib;

class Response
{
	// 文本回复
	// @param  $content 回复的消息内容
	public static function text($postArr, $content = '')
	{
		$msg = '<xml>
				<ToUserName><![CDATA[%s]]></ToUserName>
				<FromUserName><![CDATA[%s]]></FromUserName>
				<CreateTime>%d</CreateTime>
				<MsgType><![CDATA[text]]></MsgType>
				<Content><![CDATA[%s]]></Content>
				</xml>';
		// 接收方OpenID
		$arr['toUserName']   = $postArr['FromUserName'];
		// 开发者微信号
		$arr['fromUserName'] = $postArr['ToUserName'];
		// 消息创建时间
		$arr['createTime']   = time();
		// 回复的消息内容
		$arr['content']      = $content;
		$msg = sprintf($msg, $arr['toUserName'], $arr['fromUserName'], $arr['createTime'], $arr['content']);
		return $msg;
	}

	// 图片回复
	// 参数	        是否必须	说明
	// ToUserName	是	        接收方帐号（收到的OpenID）
	// FromUserName	是	        开发者微信号
	// CreateTime	是	        消息创建时间 （整型）
	// MsgType	    是	        image
	// MediaId	    是	
	// 通过素材管理中的接口上传多媒体文件，得到的id。
	public static function img($postArr, $mediaId)
	{
		$msg = '<xml>
			    <ToUserName><![CDATA[%s]]></ToUserName>
			    <FromUserName><![CDATA[%s]]></FromUserName>
			    <CreateTime>%d</CreateTime>
			    <MsgType><![CDATA[image]]></MsgType>
			    <Image>
			    <MediaId><![CDATA[%s]]></MediaId>
			    </Image>
			    </xml>';
		// 接收方OpenID
		$arr['toUserName']   = $postArr['FromUserName'];
		// 开发者微信号
		$arr['fromUserName'] = $postArr['ToUserName'];
		// 消息创建时间
		$arr['createTime']   = time();
		$arr['mediaId']      = $mediaId;
		$msg = sprintf($msg, $arr['toUserName'], $arr['fromUserName'], $arr['createTime'], $arr['mediaId']);
		return $msg;
	}

	// 图文回复
	// @param  $data = [
	//                  'num'  => 1,
	//                  'list' => array(
	//                    'title'       => '', // 图文消息标题
	//                    'description' => '', // 图文消息描述
	//                    'picurl'      => '', // 图文消息图片链接
	//                    'url'         => '', // 图文消息跳转链接
	//                   ),
	//                 ];
	public static function news($postArr, $data = [])
	{
		$msg  = '<xml>
				 <ToUserName><![CDATA[%s]]></ToUserName>
				 <FromUserName><![CDATA[%s]]></FromUserName>
				 <CreateTime>%d</CreateTime>
				 <MsgType><![CDATA[news]]></MsgType>
				 <ArticleCount>%d</ArticleCount>
				 <Articles>';

		$str  = '';
		foreach ($data['list'] as $k => $v) {
			$str = '<item>
			        <Title><![CDATA[%s]]></Title>
			        <Description><![CDATA[%s]]></Description>
			        <PicUrl><![CDATA[%s]]></PicUrl>
			        <Url><![CDATA[%s]]></Url>
			        </item>';
			$str = sprintf($str, $v['title'], $v['description'], $v['picurl'], $v['url']);
		}
		$msg .= $str;

		$msg .= '</Articles>
				 </xml>';
		// 接收方OpenID
		$arr['toUserName']   = $postArr['FromUserName'];
		// 开发者微信号
		$arr['fromUserName'] = $postArr['ToUserName'];
		// 消息创建时间
		$arr['createTime']   = time();
		// 图文消息个数，限制为10条以内
		$arr['articleCount'] = $data['num'];
		$msg = sprintf($msg, $arr['toUserName'], $arr['fromUserName'], $arr['createTime'], $arr['articleCount']);
		return $msg;
	}

}
